Po Lu [Fri, 5 May 2023 23:55:02 +0000 (07:55 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Mattias Engdegård [Thu, 4 May 2023 15:47:05 +0000 (17:47 +0200)]
Make old-struct test more robust
* test/lisp/emacs-lisp/cl-lib-tests.el (old-struct):
Use the `vector` constructor instead of vector literals to
avoid failing because of `type-of` constant-folding.
Mattias Engdegård [Thu, 4 May 2023 15:37:17 +0000 (17:37 +0200)]
Constant-propagate cons and vector literals
* lisp/emacs-lisp/byte-opt.el (byte-optimize--substitutable-p):
Allow quoted lists and conses, and vector literals, to be substituted
from lexical variables. This can eliminate variable bindings and
create new constant folding opportunities.
Mattias Engdegård [Thu, 4 May 2023 15:31:15 +0000 (17:31 +0200)]
Remove useless handling of erroneous code in Lisp optimiser
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
((closure ...) ...) is a malformed function call; treat it as such.
Better malformed function warning location.
Mattias Engdegård [Thu, 4 May 2023 15:28:08 +0000 (17:28 +0200)]
Don't inline funcall to literal lambda form
* lisp/emacs-lisp/byte-opt.el (byte-optimize-funcall): Don't convert
(funcall '(lambda ...) ...) -> ((lambda ...) ...)
because that would inline what is essentially an `eval` of a
function using dynamic binding rules into lexbound code.
João Távora [Fri, 5 May 2023 18:44:11 +0000 (19:44 +0100)]
Fido-mode: never shadow 'external' completion style
As explained in the manual (20.7.2 Fast minibuffer selection)
'fido-mode' and 'fido-vertical-mode' give priority the "flex"
completion style.
In fact, bug#62015 was recently fixed in commit because that priority
was not taking place correctly and some completions were missed.
However, an exception must be made for the 'external' completion
style.
That style, made available by the lisp/external-completion.el library,
is specifically designed to work with backends that provide only a
partial view of all completions. If we allow 'flex' to step in front
of 'external' it could mean that 'flex' matches something and
'external' isn't triggered as it probably should.
To reproduce have the rust-mode ELPA package and the rust-analyzer LSP
server handy. Then:
emacs -Q -f package-initialize main.rs
Where main.rs is this content:
fn foo1() {} fn foo2() {} fn foo3() {}
fn foobar1() {} fn foobar2() {} fn foobar3() {}
The rust-analyzer server can be quickly configured to return only 3
workspace symbols max, so evaluate:
(setq-default eglot-workspace-configuration
'(:rust-analyzer
(:workspace (:symbol (:search (:limit 3))))))
Now start M-x eglot and M-x fido-vertical-mode and type C-u M-. to
find an arbitrary symbol in this one-file project.
Type 'f'. You will see the three foo's are listed, correctly.
Now type '3'. You will only see "foo3".
But that's wrong because "foobar3" was available, if only the server
had been asked for it. This commit fixes the situation and no
completions are lost.
As an unfortunate side-effect of this commit, the fontification of
completions-common-part on the matches is lost, but that is not worse
than missing out on completions and there are better ways to recover
the fontification anyway (in external-completion.el).
See also:
https://github.com/joaotavora/eglot/discussions/1219#discussioncomment-
5818336
* lisp/icomplete.el (icomplete--fido-ccd): Do not touch entries
with 'external in them.
Michael Albinus [Fri, 5 May 2023 17:39:22 +0000 (19:39 +0200)]
Improve ange-ftp-file-remote-p
* lisp/net/ange-ftp.el (ange-ftp-file-remote-p): Handle hop
identification.
Mattias Engdegård [Fri, 5 May 2023 17:19:51 +0000 (19:19 +0200)]
Fix dired and tramp where `ls` does not have the `-N` option
This includes BSD ls, also used by macOS (bug#63142).
* lisp/dired.el (dired-insert-directory):
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory):
Test whether -N is understood by ls since that option is used along
with --dired. Remove -N when we remove --dired.
Po Lu [Fri, 5 May 2023 11:04:32 +0000 (19:04 +0800)]
Fix execution of /proc/self/exe within child processes
* exec/exec.h (struct exec_tracee): New field `new_child'.
Also, make `waiting_for_syscall' a bitfield.
* exec/trace.c (PTRACE_GETEVENTMSG): New declaration.
(MAX_TRACEES): Bump to 4096.
(handle_clone_prepare): New function.
(handle_clone): If required, set `new_child' and wait for a
ptrace event describing the parent to arrive.
(after_fork): Clear new field.
(exec_waitpid): Upon a ptrace event describing a clone, create
the child's tracee if it doesn't already exist. Otherwise, copy
over the parent's cmdline and start running it.
Jim Porter [Fri, 5 May 2023 05:43:13 +0000 (22:43 -0700)]
; Use a Bourne shell-compatible form for command substitution
* build-aux/git-hooks/post-commit:
* build-aux/git-hooks/pre-push: Use `` instead of $().
Po Lu [Fri, 5 May 2023 04:10:14 +0000 (12:10 +0800)]
Update Android port
* doc/emacs/android.texi (Android Environment): Document lossage
with SIGSTOP.
* exec/exec.c (exec_0): Check X_OK on file being opened. Also
handle /proc/self/exe.
Jim Porter [Fri, 5 May 2023 04:04:46 +0000 (21:04 -0700)]
; Allow spaces in directory names for Git hooks
* build-aux/git-hooks/post-commit:
* build-aux/git-hooks/pre-push: Quote "$HOOKS_DIR" to allow spaces.
Po Lu [Fri, 5 May 2023 02:57:26 +0000 (10:57 +0800)]
Update Android port
* exec/trace.c (SYS_SECCOMP): Define when not present.
Po Lu [Fri, 5 May 2023 00:27:30 +0000 (08:27 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Spencer Baugh [Thu, 27 Apr 2023 16:11:45 +0000 (12:11 -0400)]
Make vc-hg-annotate-command async
There's no benefit in this running the process synchrounously, and
it's annoying for it to block the Emacs UI.
* lisp/vc/vc-hg.el (vc-hg-annotate-command):
Run asynchronously (bug#63123).
Michael Albinus [Thu, 4 May 2023 18:42:24 +0000 (20:42 +0200)]
Suspend timers when reading Tramp process output
* lisp/net/tramp-compat.el (xdg): Require.
(tramp-compat-temporary-file-directory): Set it to
$XDG_CACHE_HOME/emacs if possible.
* lisp/net/tramp.el (tramp-debug-to-file): Fix docstring.
(tramp-wrong-passwd-regexp): Add "Authentication failed" string
(from doas).
(tramp-debug-message): Simplify backtrace check.
(with-tramp-locked-connection): Suppress timers. (Bug#49954, Bug60534)
* test/lisp/net/tramp-tests.el (tramp-test09-insert-file-contents):
Adapt test.
(tramp-test45-asynchronous-requests): Remove :unstable tag.
Adapt test.
Jim Porter [Thu, 4 May 2023 16:22:40 +0000 (09:22 -0700)]
; Fix post-commit and pre-push hooks in worktrees again
* build-aux/git-hooks/post-commit:
* build-aux/git-hooks/pre-push: Use "$(dirname $0)" to get the hooks
directory.
Po Lu [Thu, 4 May 2023 03:06:18 +0000 (11:06 +0800)]
Document another misfeature of Android
* doc/emacs/android.texi (Android Environment): Describe how to
turn off process killing.
Po Lu [Thu, 4 May 2023 01:12:26 +0000 (09:12 +0800)]
Update Android port
* exec/trace.c (check_signal): New function.
(handle_exec, process_system_call): Handle signal-delivery-stop
while waiting synchronously for syscall completion.
Po Lu [Thu, 4 May 2023 00:14:56 +0000 (08:14 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Stefan Monnier [Wed, 3 May 2023 17:18:08 +0000 (13:18 -0400)]
* lisp/emacs-lisp/package.el (package-buffer-info): Fix thinko
Michael Albinus [Wed, 3 May 2023 11:26:35 +0000 (13:26 +0200)]
Tramp code cleanup
* doc/lispref/files.texi (Magic File Names): Order alphabetically.
* lisp/net/tramp.el (tramp-file-name-for-operation):
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Order alphabetically.
* lisp/net/tramp.el (tramp-handle-file-user-uid)
(tramp-handle-file-group-gid, tramp-read-id-output):
* lisp/net/tramp-archive.el (tramp-archive-handle-file-group-gid):
(tramp-archive-handle-file-user-uid): Fix docstring.
* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test44-user-group-ids): Fix docstring.
Eli Zaretskii [Wed, 3 May 2023 11:15:42 +0000 (14:15 +0300)]
; * lisp/dired.el (dired-insert-directory): Fix a typo in a comment.
Alan Mackenzie [Wed, 3 May 2023 10:01:14 +0000 (10:01 +0000)]
Fontify "extern foo ();" correctly inside a function
This fixes bug#63224.
* lisp/progmodes/cc-engine.el (c-forward-type): Handle the "("
as a special case by trying to parse it with
c-forward-declarator and accepting it as a typeless function
when that fails.
Mattias Engdegård [Wed, 3 May 2023 09:09:37 +0000 (11:09 +0200)]
; * lisp/simple.el (blink-matching-open): retain props in bootstrap
Po Lu [Wed, 3 May 2023 09:01:44 +0000 (17:01 +0800)]
Update Android port
* exec/config.h.in: Autoheader.
* exec/configure.ac: Check for siginfo_t.si_syscall.
* exec/trace.c (exec_waitpid): If SIGSYS is received, and caused by
seccomp, drop it should the call number be the invalid system call
used by Emacs.
Po Lu [Wed, 3 May 2023 08:00:13 +0000 (16:00 +0800)]
Update Android port
* exec/config.h.in: Autoheader.
* exec/configure.ac: Use system extensions.
(HAVE_PROCESS_VM): Define if process_vm_readv and
process_vm_writev are available.
* exec/trace.c (read_memory, user_copy): Implement in terms of
process_vm if possible.
Jim Porter [Mon, 1 May 2023 16:49:00 +0000 (09:49 -0700)]
Use connection-aware functions when getting the UID/GID in Eshell
This means, for example, that when using Tramp to sudo in Eshell, "rm"
queries the user before deleting anything (bug#63221).
* lisp/eshell/esh-util.el (eshell-user-login-name): New function...
* lisp/eshell/em-unix.el (eshell/whoami): ... use it.
* lisp/eshell/em-ls.el (eshell-ls-applicable): Use 'file-user-uid' and
'eshell-user-login-name'.
(eshell-ls-decorated-name): Use 'file-user-uid'.
* lisp/eshell/em-pred.el (eshell-predicate-alist): Use 'file-user-uid'
and 'file-group-gid'.
* lisp/eshell/em-unix.el (eshell-interactive-query): New widget...
(eshell-rm-interactive-query, eshell-mv-interactive-query)
(eshell-cp-interactive-query, eshell-ln-interactive-query): ... use
it.
(eshell-interactive-query-p): New function...
(eshell/rm, eshell/mv, eshell/cp, eshell/ln): ... use it.
* lisp/simple.el (file-group-gid): New function.
* lisp/net/ange-ftp.el (ange-ftp-file-group-gid): New function...
(file-group-gid): ... use it.
* lisp/net/tramp.el (tramp-handle-file-group-gid):
* lisp/net/tramp-archive.el (tramp-archive-handle-file-group-gid): New
functions.
* lisp/net/tramp.el (tramp-file-name-for-operation): Add
'file-group-gid'.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
* lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist):
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist):
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
* lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist):
* lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist):
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
* lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist):
Add 'file-group-gid' mapping.
* test/lisp/net/tramp-tests.el (tramp-test44-file-user-group-ids):
* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test44-file-user-group-ids): Add tests for
'file-group-gid'.
* doc/lispref/files.texi (Magic File Names): Mention 'file-group-gid'.
* doc/lispref/os.texi (User Identification): Document
'file-group-gid', and move 'group-real-gid' to match the order of
'user-real-uid'.
* etc/NEWS: Announce 'file-group-gid'.
Po Lu [Wed, 3 May 2023 01:23:06 +0000 (09:23 +0800)]
Remove extra debugging code
* exec/loader-mipsel.s (__start): Remove extraneous debugging
code.
Po Lu [Tue, 2 May 2023 23:53:38 +0000 (07:53 +0800)]
Update Android port
* exec/Makefile.in: (.PHONY): Add `bootstrap-clean' and
`extraclean'.
(bootstrap-clean): New rule.
Po Lu [Tue, 2 May 2023 23:50:29 +0000 (07:50 +0800)]
Update Android port
* java/Makefile.in (FIND_DELETE): New substitution.
(clean): Use FIND_DELETE.
Po Lu [Tue, 2 May 2023 23:45:49 +0000 (07:45 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Eli Zaretskii [Tue, 2 May 2023 18:36:26 +0000 (21:36 +0300)]
; Fix last change
* lisp/simple.el (blink-matching-paren-highlight-offscreen)
(blink-matching-paren-offscreen)
(blink-paren-open-paren-line-string): Doc fixes. (Bug#63089)
Shynur [Mon, 1 May 2023 17:32:44 +0000 (01:32 +0800)]
Display matched offscreen open paren with a distinct face
Propertize matched offscreen openparen that is showing in
the echo area in order to make it prominent; use shadow
face for non-context characters (i.e., 'Matches') for the
same purpose.
* lisp/simple.el (blink-matching-paren-offscreen): Add this
face for highlighting.
* lisp/simple.el (blink-matching-paren-highlight-offscreen): Add
this option to toggle face `blink-matching-paren-offscreen'.
* lisp/simple.el (blink-paren-open-paren-line-string): Propertize
the matched offscreen openparen with a face conditionally.
(Bug#63089)
Eli Zaretskii [Tue, 2 May 2023 17:46:17 +0000 (20:46 +0300)]
Fix Dired when QUITING_STYLE is set in the environment
* lisp/dired.el (dired-insert-directory): Ensure non-default
quoting style of file names is not used by 'ls' when we invoke it
with the --dired switch. (Bug#63142)
Po Lu [Tue, 2 May 2023 13:13:42 +0000 (21:13 +0800)]
* doc/emacs/android.texi (Android Environment): Improve doc.
Eli Zaretskii [Tue, 2 May 2023 12:55:44 +0000 (15:55 +0300)]
; * doc/lispref/functions.texi (Declare Form): Fix whitespace.
Eli Zaretskii [Tue, 2 May 2023 12:50:09 +0000 (08:50 -0400)]
Merge from origin/emacs-29
46392c1623b Fix vertical-motion when tab-line is displayed in a window
0e52beeacea Update to Org 9.6.5-3-g2993f4
dd21003878d Prevent generating empty autoload files
2bcf11d0efe * lisp/org/org-macs.el (org--inhibit-version-check): Fix ...
ca43435816b Fix redisplay of mode line after its format changes from nil
610a7657e0a Fix c-ts-mode--emacs-c-range-query
7f94558b775 Improve documentation of warnings
5a3f0e2c558 ; Doc fix in c-ts-mode.el
21361d05635 Fix FOR_EACH_TAIL fontification (bug#62951)
d0df3404fde ; * etc/EGLOT-NEWS: chsharp-le -> csharp-ls
c229e83c3ce ; * etc/EGLOT-NEWS (https): Elglot -> Eglot.
b4f2f499783 Fix documentation of libxml-parse-* functions
5dd784961d1 ; * src/treesit.c (syms_of_treesit): Fix error messages.
ddfa0d8da9a ; Remove some leftover text
Po Lu [Tue, 2 May 2023 12:45:57 +0000 (20:45 +0800)]
Update Android port
* exec/config.h.in (__bool_true_false_are_defined):
* exec/configure.ac (REENTRANT): New definition.
(READLINKAT_SYSCALL, READLINK_SYSCALL): New defines. Set on all
hosts.
* exec/exec.c (MIN, MAX): Remove redundant declarations. Move
to config.h.
(exec_0): Copy name of executable into NAME when !REENTRANT.
* exec/exec.h (struct exec_tracee): New struct `exec_file'.
* exec/trace.c (remove_tracee, handle_exec, handle_readlinkat)
(process_system_call, after_fork): Handle readlinkat system
calls.
Eli Zaretskii [Tue, 2 May 2023 12:43:51 +0000 (15:43 +0300)]
Revert "; * lisp/progmodes/c-ts-mode.el: allow loading file without treesit"
This reverts commit
7d246c359cf3d25cab5134076e393c4d25015827.
The same problem was already fixed on the release branch,and this
change will just cause merge conflicts.
Po Lu [Tue, 2 May 2023 08:44:46 +0000 (16:44 +0800)]
Fix ps name in Android subprocesses
* exec/Makefile.in (.SUFFIXES): Include ., then `srcdir'.
* exec/loader-aarch64.s (_start):
* exec/loader-armeabi.s (_start):
* exec/loader-mips64el.s (__start):
* exec/loader-mipsel.s (__start):
* exec/loader-x86.s (_start):
* exec/loader-x86_64.s (_start): Get basename of opened exec
file and make it the command name. Fix envp skipping on x86
and various leaks.
Po Lu [Tue, 2 May 2023 00:16:00 +0000 (08:16 +0800)]
Port Android port to older Android systems
* exec/config.h.in: Autoheader.
* exec/configure.ac: Check for declarations of stpcpy and
stpncpy.
* exec/exec.c (stpcpy, stpncpy): Use replacements if
declarations are not present; this happens when a new Android
NDK is building for an old version of Android.
Po Lu [Tue, 2 May 2023 00:09:17 +0000 (08:09 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Mattias Engdegård [Mon, 1 May 2023 17:08:12 +0000 (19:08 +0200)]
; * lisp/progmodes/c-ts-mode.el: allow loading file without treesit
Jim Porter [Mon, 1 May 2023 16:49:39 +0000 (09:49 -0700)]
; Use $GIT_DIR to find the .git directory inside our hooks
This resolves an issue with running the hooks from a worktree. See
<https://lists.gnu.org/archive/html/emacs-devel/2023-05/msg00000.html>.
* build-aux/git-hooks/post-commit:
* build-aux/git-hooks/pre-push: Use $GIT_DIR.
Mattias Engdegård [Mon, 1 May 2023 15:22:02 +0000 (17:22 +0200)]
Declare `cl-delete` to have important-return-value (bug#61730)
* lisp/emacs-lisp/cl-macs.el: Set property on `cl-delete`.
* lisp/progmodes/python.el (python-shell--add-to-path-with-priority):
Prevent warning by cleaner code.
Mattias Engdegård [Mon, 1 May 2023 13:55:32 +0000 (15:55 +0200)]
Add the function declaration and property `important-return-value`
Now the declaration
(declare (important-return-value t))
can be used to have the byte-compiler warn when the return value from
a call is discarded (bug#61730).
* lisp/emacs-lisp/bytecomp.el (byte-compile-form)
(important-return-value-fns): Use the function property
`important-return-value` instead of looking through a static list.
* lisp/emacs-lisp/byte-run.el (byte-run--set-important-return-value)
(defun-declarations-alist): New function declaration, setting the
property of the same name.
* lisp/emacs-lisp/cl-macs.el:
* lisp/subr.el (assoc-default): Set the property.
* doc/lispref/functions.texi (Declare Form):
* doc/lispref/symbols.texi (Standard Properties): Document.
* etc/NEWS: Announce.
Po Lu [Mon, 1 May 2023 13:42:42 +0000 (21:42 +0800)]
Update Android port
* exec/config.h.in: Update config.h.in.
* exec/configure.ac: Check for stpcpy and stpncpy.
* exec/exec.c (rpl_stpcpy, rpl_stpncpy): Define replacements
when they are not present on the system.
(process_program_header): Fill comment.
Po Lu [Mon, 1 May 2023 13:28:40 +0000 (21:28 +0800)]
; * src/term.c (syms_of_term): Pretend Android uses TERMINFO.
Po Lu [Mon, 1 May 2023 13:23:12 +0000 (21:23 +0800)]
Fix cwd relative process execution on Android
* exec/exec.c (format_pid): New function.
(exec_0): Make cwd relative file names relative to
/proc/pid/cwd.
* exec/trace.c (handle_exec): Handle EINTR.
(process_system_call): Report failure without clobbering x0.
Eli Zaretskii [Mon, 1 May 2023 12:27:21 +0000 (15:27 +0300)]
Fix vertical-motion when tab-line is displayed in a window
* src/xdisp.c (try_window, try_window_id): Account for tab-line,
if present, when converting scroll-margin at the top of the window
to vertical pixel coordinate. (Bug#63201)
Po Lu [Mon, 1 May 2023 06:25:40 +0000 (14:25 +0800)]
; * README: Describe `exec' directory.
Po Lu [Mon, 1 May 2023 06:16:07 +0000 (14:16 +0800)]
Fix use dialog box regression on Android
* lisp/subr.el (use-dialog-box-p): Always prefer dialog boxes.
Po Lu [Mon, 1 May 2023 05:51:12 +0000 (13:51 +0800)]
Make it easier to quit on Android
* src/android.c (android_write_event):
(JNICALL): Raise SIGIO on key press and window action events.
Po Lu [Mon, 1 May 2023 05:12:44 +0000 (13:12 +0800)]
Fix syscall error reporting on aarch64
* exec/trace.c (process_system_call): Save and restore x0, x1
and x2 regs after replacing them with an invalid file
descriptor.
Po Lu [Mon, 1 May 2023 03:28:22 +0000 (11:28 +0800)]
Update Android port
* Makefile.in (extraclean): Clean in exec as well.
* configure.ac: Fix detection of absolute srcdir. Also, pass
CFLAGS.
* exec/Makefile.in: (.c.o): Add -I. so config.h can be
found.:(.s.o): Don't create m4 temporary in srcdir.
* exec/config-mips.m4.in (DADDI2, DADDI3): New macros. Define
to substitute if as cannot assemble daddi.
* exec/configure.ac (user_h): Look for user.h in asm/ as well.
Use new user.h. Also look in ptrace.h on arm systems. Check if
as supports daddi on mips64.
* exec/exec.c (check_interpreter): Fix char signedness bug.
* exec/loader-mips64el.s (__start): Use DADDI2 and DADDI3 for
two- and 3-operand daddi.
* exec/mipsel-user.h: Don't include sgidefs.h.
* java/INSTALL: Document that m4 is now required.
* src/android.c (android_rewrite_spawn_argv): Add missing NULL.
Po Lu [Mon, 1 May 2023 01:48:25 +0000 (09:48 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Mon, 1 May 2023 01:31:58 +0000 (09:31 +0800)]
Work around system restrictions regarding exec
* doc/emacs/android.texi (Android Environment): Document
`android-use-exec-loader'.
* exec/exec1.c (main): Set program group of child process.
* src/android.c (android_rewrite_spawn_argv): New function.
* src/android.h: Update prototypes.
* src/androidfns.c (syms_of_androidfns): New variable
`android_use_exec_loader'.
* src/callproc.c (emacs_spawn): Rewrite the argument vector to
use exec1 if necessary.
F. Jason Park [Fri, 28 Apr 2023 14:01:14 +0000 (07:01 -0700)]
Compare case-folded nicks with erc-fill-wrap-merge
* lisp/erc/erc-fill.el (erc-fill--wrap-continued-message-p): Downcase
both current and previous speaker when comparing nicks.
* test/lisp/erc/erc-fill-tests.el (erc-fill-wrap--merge): Add
title-case nick to test.
* test/lisp/erc/resources/fill/snapshots/merge-01-start.eld: Update
snapshot.
* test/lisp/erc/resources/fill/snapshots/merge-02-right.eld: Update
snapshot. (Bug#60936)
Po Lu [Mon, 1 May 2023 00:15:48 +0000 (08:15 +0800)]
Remove exec/configure
* exec/configure: Remove file.
* .gitignore: Add exec/configure.
Kyle Meyer [Sun, 30 Apr 2023 23:36:21 +0000 (19:36 -0400)]
Update to Org 9.6.5-3-g2993f4
Philip Kaludercic [Sun, 30 Apr 2023 11:17:09 +0000 (13:17 +0200)]
Prevent generating empty autoload files
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Remove
optimisation that would mistakenly discard old loaddefs in case a file
was not modified by EXTRA-DATA is non-nil. (Bug#62734)
Stefan Monnier [Sun, 30 Apr 2023 13:41:13 +0000 (09:41 -0400)]
* lisp/org/org-macs.el (org--inhibit-version-check): Fix docstring
Also, add an explanation to the docstring for what the version
check is about.
Po Lu [Sun, 30 Apr 2023 13:37:19 +0000 (21:37 +0800)]
Add helper binary `exec1'
* .gitignore: New files.
* Makefile.in (mostlyclean_dirs): Add libexec, if its Makefile
exists.
* autogen.sh (do_git): Autoreconf in exec as well.
* configure.ac: Configure libexec on Android.
* exec/Makefile.in:
* exec/README:
* exec/config-mips.m4.in:
* exec/config.guess:
* exec/config.h.in:
* exec/config.sub:
* exec/configure:
* exec/configure.ac:
* exec/deps.mk:
* exec/exec.c (MIN, struct exec_open_command)
(struct exec_map_command, struct exec_jump_command)
(write_open_command, write_load_command, process_interpreter_1)
(process_interpreter, process_program_header, insert_args)
(exec_0):
* exec/exec.h (_EXEC_H_, struct elf_header_32)
(struct program_header_32, struct dt_entry_32)
(struct elf_header_64, struct program_header_64)
(struct dt_entry_64, struct exec_tracee):
* exec/exec1.c (main):
* exec/install-sh (scriptversion):
* exec/loader-aarch64.s (_start):
* exec/loader-armeabi.s (_start):
* exec/loader-mips64el.s (__start):
* exec/loader-mipsel.s (__start):
* exec/loader-x86.s (_start):
* exec/loader-x86_64.s (_start):
* exec/mipsel-user.h (_MIPSEL_USER_H_):
* exec/mipsfpu.c (MIPS_ABI_FP_ANY, fpu_reqs, valid_abi_p)
(fp_mode_for_abi, cpu_supports_fr0_p, determine_fpu_mode):
* exec/mipsfpu.h (_MIPSFPU_H_, FP_FR0):
* exec/test.c (print_usage, main):
* exec/trace.c (MAX_TRACEES, aarch64_set_regs, read_memory)
(user_alloca, user_copy, remove_tracee, handle_clone)
(syscall_trap_p, handle_exec, process_system_call, tracing_execve)
(after_fork, find_tracee, exec_waitpid, exec_init): New files.
* java/Makefile.in (CROSS_EXEC_BINS): Add exec1 and
loader.
($(CROSS_EXEC_BINS) &): New target.
Eli Zaretskii [Sun, 30 Apr 2023 13:24:05 +0000 (16:24 +0300)]
Fix redisplay of mode line after its format changes from nil
* src/dispnew.c (update_window): Make sure a mode-line's row of
the current glyph matrix is disabled when the mode line is not
being displayed. (Bug#63186)
Michael Albinus [Sun, 30 Apr 2023 10:11:00 +0000 (12:11 +0200)]
Fix c-ts-mode--emacs-c-range-query
* lisp/progmodes/c-ts-mode.el (c-ts-mode--emacs-c-range-query):
Check for (treesit-available-p).
Eli Zaretskii [Sun, 30 Apr 2023 08:07:36 +0000 (11:07 +0300)]
Improve documentation of warnings
* doc/lispref/control.texi (Errors):
* doc/lispref/os.texi (Startup Summary):
* doc/lispref/display.texi (Warning Basics, Warning Variables)
(Warning Options, Delayed Warnings): Improve documentation of
warnings. Document the automatic delaying of warnings during
startup. (Bug#63181)
Eli Zaretskii [Sun, 30 Apr 2023 05:21:38 +0000 (08:21 +0300)]
; Doc fix in c-ts-mode.el
* lisp/progmodes/c-ts-mode.el (c-ts-mode--fontify-for-each-tail):
Doc fix.
Andrew G Cohen [Sun, 30 Apr 2023 01:55:42 +0000 (09:55 +0800)]
Fix outgoing mime type regression (Bug#62815)
* lisp/net/mailcap.el (mailcap-mime-extensions,
mailcap-parse-mimetype-file, mailcap-mime-types): Don't regexp-quote
mimetypes in a context where they should be strings.
(mailcap--regexp-quote-type): Remove.
Po Lu [Sun, 30 Apr 2023 00:25:24 +0000 (08:25 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Yuan Fu [Sat, 29 Apr 2023 22:39:54 +0000 (15:39 -0700)]
Fix FOR_EACH_TAIL fontification (bug#62951)
Fix the fontification inconsistency between different FOR_EACH_TAIL's.
See the comment for more explanation. Also enable the emacs-devel
feature automatically when c-ts-mode-emacs-sources-support is on.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--for-each-tail-regexp): Move up.
(c-ts-mode--font-lock-settings): New font-lock rule for FOR_EACH_TAIL.
(c-ts-mode--fontify-for-each-tail): New function.
(c-ts-mode): Automatically enable emacs-devel feature.
João Távora [Sat, 29 Apr 2023 19:47:24 +0000 (20:47 +0100)]
Eglot: bump to 1.15
* lisp/progmodes/eglot.el (Version): Bump to 1.15
* etc/EGLOT-NEWS: Update.
João Távora [Sat, 29 Apr 2023 19:46:12 +0000 (20:46 +0100)]
Eglot: unbreak for Emacs 26
Emacs 26 doesn't have newer progress-reporter-update.
I think I'll start using compat.el soon.
* lisp/progmodes/eglot.el (eglot--apply-text-edits): Unbreak for
Emacs 26 which doesn't have newer progress-reporter-update.
Theodor Thornhill [Sat, 29 Apr 2023 17:59:49 +0000 (19:59 +0200)]
; * etc/EGLOT-NEWS: chsharp-le -> csharp-ls
Theodor Thornhill [Sat, 29 Apr 2023 17:54:09 +0000 (19:54 +0200)]
; * etc/EGLOT-NEWS (https): Elglot -> Eglot.
Wilhelm H Kirschbaum [Thu, 27 Apr 2023 10:13:25 +0000 (12:13 +0200)]
Improve call indentation for elixir-ts-mode
* lisp/progmodes/elixir-ts-mode.el
(elixir-ts--indent-rules): Change match order.
(Bug#63110)
* test/lisp/progmodes/elixir-ts-mode-resources/indent.erts:
Add test case.
Wilhelm H Kirschbaum [Thu, 27 Apr 2023 09:39:39 +0000 (11:39 +0200)]
Add bitstring indentation and navigation for elixir-ts-mode
* lisp/progmodes/elixir-ts-mode.el
(elixir-ts--sexp-regexp): Add bistring.
(elixir-ts--indent-rules): Handle bitstring indentation.
(Bug#63109)
* test/lisp/progmodes/elixir-ts-mode-resources/indent.erts:
Add test case.
Eli Zaretskii [Sat, 29 Apr 2023 08:50:47 +0000 (11:50 +0300)]
Optimize search for composable characters in redisplay
* src/composite.c (composition_compute_stop_pos): Accept new
argument INCLUDE_STATIC, and look for potential static
compositions only if this argument is non-zero.
* src/xdisp.c:
* src/composite.c:
* src/indent.c: All callers adjusted.
* src/xdisp.c (compute_stop_pos): Don't search for static
compositions. Search for automatic compositions only after the
iterator gets past the composition stop_pos computed last time.
Use a better position for limiting search for automatic
compositions. (Bug#62780)
Eli Zaretskii [Sat, 29 Apr 2023 06:39:15 +0000 (09:39 +0300)]
Fix documentation of libxml-parse-* functions
* doc/lispref/text.texi (Parsing HTML/XML):
* src/xml.c (Flibxml_parse_html_region, Flibxml_parse_xml_region):
Update the documentation regarding the use of BASE-URL argument.
(Bug#63125)
Po Lu [Sat, 29 Apr 2023 00:28:01 +0000 (08:28 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sat, 29 Apr 2023 00:27:44 +0000 (08:27 +0800)]
Update Android port
* build-aux/ndk-build-helper.mk (TARGET_ARCH): Define variable.
* configure.ac (ENABLE_CHECKING, CHECK_STRUCTS)
(GC_CHECK_STRING_OVERRUN, GC_CHECK_STRING_FREE_LIST, GLYPH_DEBUG)
(GC_CHECK_STRING_BYTES): Enable checking correctly on Android.
* java/README: Fix typos.
* m4/ndk-build.m4 (ndk_run_test): Pass target arch.
* src/android.c (android_get_content_name, android_close)
(android_fclose, android_check_string): Fix various typos caught
by checking.
* src/charset.c (load_charset_map_from_file): Call emacs_fclose,
not fclose.
* src/image.c (image_set_transform): Fix thinko.
(png_load_body, jpeg_load_body, gif_load): Call emacs_fclose,
not fclose. Use open instead of fdopen.
* src/xfaces.c (Fx_load_color_file): Likewise.
Eli Zaretskii [Fri, 28 Apr 2023 18:14:32 +0000 (21:14 +0300)]
; * src/treesit.c (syms_of_treesit): Fix error messages.
Dmitry Gutov [Fri, 28 Apr 2023 16:28:25 +0000 (19:28 +0300)]
; Remove some leftover text
Jonas Bernoulli [Wed, 29 Mar 2023 14:57:33 +0000 (16:57 +0200)]
Support displaying all package maintainers (Bug#62524)
* lisp/emacs-lisp/package.el (describe-package-1): Use new
:maintainers package extra property from "archive-contents",
if non-nil.
* (package-buffer-info): Fix docstring.
Eli Zaretskii [Fri, 28 Apr 2023 16:14:26 +0000 (12:14 -0400)]
Merge from origin/emacs-29
212e30f6789 ; Fix byte-compilation warnings in c-ts-mode.el
1f2214dabd0 Skip over whitespace in annotation-top-cont check (bug#63...
7e136c51f6f Update zh-CN tutorial translation
d3ca0b3aa2e ; * lisp/progmodes/c-ts-mode.el: Fix comments and doc str...
c6f15c24862 ; Fix last change.
b9e06330f75 ; * etc/NEWS: Followup to bug#62720.
b33d25f5967 ; Minor improvements in doc strings of package-upgrade co...
c3a61870b94 Fix eglot.texi
# Conflicts:
# etc/NEWS
Eli Zaretskii [Fri, 28 Apr 2023 16:01:19 +0000 (12:01 -0400)]
; Fix byte-compilation warnings in c-ts-mode.el
* lisp/progmodes/c-ts-mode.el (treesit-parser-set-included-ranges)
(treesit-query-compile): Declare treesit.c functions.
(treesit-load-name-override-list): Defvar it.
Mattias Engdegård [Fri, 28 Apr 2023 13:03:47 +0000 (15:03 +0200)]
Use t for non-nil default values in boolean defcustom declarations
* lisp/emulation/viper-ex.el (ex-unix-type-shell):
* lisp/emulation/viper-init.el (viper-ms-style-os-p):
* lisp/eshell/em-glob.el (eshell-glob-case-insensitive):
* lisp/filecache.el (file-cache-ignore-case):
* lisp/lpr.el (lpr-add-switches):
* lisp/ls-lisp.el (ls-lisp-ignore-case):
* lisp/mail/binhex.el (binhex-use-external):
* lisp/progmodes/cperl-mode.el (cperl-electric-parens-mark):
Normalise default values to nil or t.
Theodor Thornhill [Fri, 28 Apr 2023 12:00:35 +0000 (14:00 +0200)]
Skip over whitespace in annotation-top-cont check (bug#63141)
* lisp/progmodes/csharp-mode.el (csharp-guess-basic-syntax): Make sure
we skip over whitespace when looking for the next '['.
Po Lu [Fri, 28 Apr 2023 06:43:31 +0000 (14:43 +0800)]
Make mode-line behavior better with grayscale visuals
* lisp/faces.el (mode-line, mode-line-inactive)
(mode-line-highlight): Enable gray faces on grayscale visuals.
Ruijie Yu [Wed, 19 Apr 2023 02:36:22 +0000 (10:36 +0800)]
Update zh-CN tutorial translation
* etc/tutorials/TUTORIAL.cn (INTRO): Additions from English
version; say "interrupt" not "quit" a partially-entered command;
fixed minor inconsistency (English says partially-entered command,
Chinese used to say partially-executed command -- they are
different); converted half-width square brackets containing
translators' notes into full-width ones for consistency.
(BASIC CURSOR CONTROL): mention that a word boundary for Chinese
can also be space; fixed incorrect terminology (keyboard vs
terminal); retain English term "terminal"; retain English term
"prefix argument"; "most commands _interpret_ prefix args as
repeat-count", not "explain"; ensure space is added on both ends
of an English word.
(WINDOWS): Clarify it is the digit 1 in C-x 1.
(INSERTING AND DELETING): Mention the term "continuation line" and
retain its English term, because this term is mentioned again
later in the tutorial; avoid saying the name of "\\"; add
description for "electric" and a rough translation; sync English
for prefix argument for DEL and C-d; ensure that translators'
notes are marked explicitly so; add indentation to the instruction
about continuation lines; additional translations such as
mentioning C--, etc.
(FILES): Re-pluralize the heading; space around English words;
describe what C-g cancels (the command) when entering file name;
replace "search for" with "find"; minor rephrasing; explicit
translator notes; fixed the write-file message to no longer
contain ellipses (see src/fileio.c:5541).
(BUFFERS): Re-pluralize the heading; mention that C-x C-b also
shows buffer name; C-x s only looks for file-visiting buffers.
(EXTENDING THE COMMAND SET): Include C-x s and C-x b in list of
learned commands.
(MODE LINE): Remove the dashes in description on the point
location.
(MULTIPLE WINDOWS): Mention the difference between frame
and window; also add translator notes pointing to end of
tutorial which contains a terminology list.
(MULTIPLE FRAMES): Change the M-x commands to keybinds C-x 5 2 and
C-x 5 0 to sync with English.
(GETTING MORE HELP): Change C-h f to C-h x, to sync with English.
(INSTALLING PACKAGES): Rephrase "available packages", used to say
lit., "existing", now says lit., "installable"; consistently
translate the term "package", and retain its English name.
(TRANSLATION): Add my name as co-maintainer of this file.
* etc/tutorials/TUTORIAL.translators (TUTORIAL.cn): Add my name
as co-maintainer for TUTORIAL.cn.
Eli Zaretskii [Fri, 28 Apr 2023 05:40:56 +0000 (08:40 +0300)]
; * lisp/progmodes/c-ts-mode.el: Fix comments and doc strings (bug#62951).
Eli Zaretskii [Fri, 28 Apr 2023 05:27:20 +0000 (08:27 +0300)]
; Fix last change.
Eli Zaretskii [Fri, 28 Apr 2023 05:26:39 +0000 (08:26 +0300)]
; * etc/NEWS: Followup to bug#62720.
Eli Zaretskii [Fri, 28 Apr 2023 05:14:37 +0000 (08:14 +0300)]
; Minor improvements in doc strings of package-upgrade commands
* lisp/emacs-lisp/package.el (package-upgrade)
(package-upgrade-all): Doc fixes. (Bug#62720)
Eli Zaretskii [Fri, 28 Apr 2023 04:54:16 +0000 (07:54 +0300)]
Fix eglot.texi
* doc/misc/eglot.texi (Troubleshooting Eglot): Add missing @menu.
(Performance, Getting the latest version): Improve wording and
indexing, add cross-references.
Po Lu [Fri, 28 Apr 2023 03:53:06 +0000 (11:53 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Fri, 28 Apr 2023 03:51:01 +0000 (11:51 +0800)]
Merge from origin/emacs-29
a40f1816237 Fix two crashes upon startup
44ebd9cbd56 Eglot: explain how to update Eglot in manual (bug#62720)
941ef044f2e Eglot: fix edge case when deleting inlay hint overlays
a365984d9e1 package-upgrade[-all]: Expand docstrings to note the curr...
f965f35b33b Rename all functions called package-*-update-* to package...
31b58161bb5 Fix FOR_EACH_TAIL in c-ts-mode (bug#62951)
0cf6e0998ba * Makefile.in (distclean): Remove the 'native-lisp' direc...
933705d61e5 Improve greek-ibycus4 input method
# Conflicts:
# etc/NEWS
Po Lu [Fri, 28 Apr 2023 03:47:46 +0000 (11:47 +0800)]
Fix two crashes upon startup
* src/image.c (image_create_bitmap_from_data)
(image_create_bitmap_from_file): Specify a Window or a Pixmap
describing the screen, not a back buffer drawable which may not exist.
Otherwise, Emacs crashes on startup when a bitmap icon is in use.
Po Lu [Fri, 28 Apr 2023 00:05:34 +0000 (08:05 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
João Távora [Thu, 27 Apr 2023 20:08:17 +0000 (21:08 +0100)]
Eglot: explain how to update Eglot in manual (bug#62720)
* lisp/progmodes/eglot.el (eglot-update): New command.
* doc/misc/eglot.texi (Troubleshooting): Rework.